package android.hackathon.bp.hayaben;

import com.felicanetworks.mfc.AppInfo;
import com.felicanetworks.mfc.FelicaEventListener;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.Toast;
import android.view.View;

public class ReceiveWifiActivity extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.receive_wifi);

		// インテントのExtraにセットされたWiFi設定文字列
		// （「アクセスポイント名」＋","＋「パスワード」）を取得
		String senddata		= getIntent().getDataString();
		String[] wificonfs	= senddata.split(",");

		// ウィジェットの取得
		TextView txt_apoint	= (TextView)findViewById(R.id.txt_access_point_name);
		EditText etxt_key	= (EditText)findViewById(R.id.etxt_access_key);

		// 正しいフォーマットでWiFi情報が送られない場合はToastでメッセージを発信し終了
		if(wificonfs.length < 2) {
			Toast.makeText(this, "設定情報が正しく送られていません。", Toast.LENGTH_LONG).show();

			txt_apoint.setText("前の画面に戻って、ペアリングし直して下さい。");

			return;
		}

		// 受信したWiFi設定を表示
		txt_apoint.setText(wificonfs[0]);
		etxt_key.setText(wificonfs[1]);
		etxt_key.selectAll();

		// WiFi設定の保存が完了した旨を表示
		StringBuffer sbuf = new StringBuffer();
		sbuf.append("アクセスポイント名");
		sbuf.append(wificonfs[0]);
		sbuf.append("のWiFi設定を受信しました。");
		Toast.makeText(this, sbuf.toString(), Toast.LENGTH_LONG).show();
	}

	@Override
	protected void onResume() {
		super.onResume();
		FelicaService service = FelicaService.getInstance();
		service.setContext(this, new FelicaEventListener() {
			public void finished() {
			}

			public void errorOccurred(int arg0, String arg1, AppInfo arg2) {
				// String msg;
				// msg = String.format(
				// "FelicaEventListener#errorOccurred(%s,%s,%s)", arg0,
				// arg1, arg2);
				// m(msg);
			}
		});

		try {
			service.connectAndActivate();
		} catch (Exception e) {
			// e.printStackTrace();
			// String msg = e.getMessage();
			// m(msg);
		}
	}

	@Override
	protected void onPause() {
		super.onPause();

		FelicaService service = FelicaService.getInstance();
		try {
			service.disconnectAndInactivate();
		} catch (Exception e) {
			// Log.e(TAG, e.getMessage(), e);
			// String msg = e.toString();
			// m(msg);
		}
	}
}
